<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Computer programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Computer_programming"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Computer_programming rootpage-Computer_programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Computer programming</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar sidebar-collapse nomobile"><tbody><tr><td class="sidebar-pretitle">Part of a series on</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="Software_development" title="Software development">Software development</a></th></tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Core activities</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Data_modeling" title="Data modeling">Data modeling</a></li>
<li><a href="Software_development_process" title="Software development process">Processes</a></li>
<li><a href="Requirements_analysis" title="Requirements analysis">Requirements</a></li>
<li><a href="Software_design" title="Software design">Design</a></li>
<li><a href="Software_construction" title="Software construction">Construction</a></li>
<li><a href="Software_engineering" title="Software engineering">Engineering</a></li>
<li><a href="Software_testing" title="Software testing">Testing</a></li>
<li><a href="Debugging" title="Debugging">Debugging</a></li>
<li><a href="Software_deployment" title="Software deployment">Deployment</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Maintenance</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Paradigms and models</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Cleanroom_software_engineering" title="Cleanroom software engineering">Cleanroom</a></li>
<li><a href="Incremental_build_model" title="Incremental build model">Incremental</a></li>
<li><a href="Software_prototyping" title="Software prototyping">Prototyping</a></li>
<li><a href="Spiral_model" title="Spiral model">Spiral</a></li>
<li><a href="V-model_(software_development)" title="V-model (software development)">V model</a></li>
<li><a href="Waterfall_model" title="Waterfall model">Waterfall</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="Software_development_methodology" class="mw-redirect" title="Software development methodology">Methodologies</a> and frameworks</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Adaptive_software_development" title="Adaptive software development">ASD</a></li>
<li><a href="Disciplined_agile_delivery" title="Disciplined agile delivery">DAD</a></li>
<li><a href="DevOps" title="DevOps">DevOps</a></li>
<li><a href="Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a></li>
<li><a href="Feature-driven_development" title="Feature-driven development">FDD</a></li>
<li><a href="Iterative_and_incremental_development" title="Iterative and incremental development">IID</a></li>
<li><a href="Kanban_(development)" title="Kanban (development)">Kanban</a></li>
<li><a href="Lean_software_development" title="Lean software development">Lean SD</a></li>
<li><a href="Scrum_(software_development)#Large-scale_Scrum" title="Scrum (software development)">LeSS</a></li>
<li><a href="Model-driven_development" class="mw-redirect" title="Model-driven development">MDD</a></li>
<li><a href="Microsoft_Solutions_Framework" title="Microsoft Solutions Framework">MSF</a></li>
<li><a href="Personal_software_process" title="Personal software process">PSP</a></li>
<li><a href="Rapid_application_development" title="Rapid application development">RAD</a></li>
<li><a href="Rational_unified_process" title="Rational unified process">RUP</a></li>
<li><a href="Scaled_agile_framework" title="Scaled agile framework">SAFe</a></li>
<li><a href="Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li>
<li><a href="SEMAT" title="SEMAT">SEMAT</a></li>
<li><a href="Test-driven_development" title="Test-driven development">TDD</a></li>
<li><a href="Team_software_process" title="Team software process">TSP</a></li>
<li><a href="Unified_process" title="Unified process">UP</a></li>
<li><a href="Extreme_programming" title="Extreme programming">XP</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Supporting disciplines</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Software_configuration_management" title="Software configuration management">Configuration management</a></li>
<li><a href="Deployment_management#Computer_science" title="Deployment management">Deployment management</a></li>
<li><a href="Software_documentation" title="Software documentation">Documentation</a></li>
<li><a href="Software_project_management" title="Software project management">Project management</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">Quality assurance</a></li>
<li><a href="User_experience" title="User experience">User experience</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Practices</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Acceptance_test-driven_development" title="Acceptance test-driven development">ATDD</a></li>
<li><a href="Behavior-driven_development" title="Behavior-driven development">BDD</a></li>
<li><a href="Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">CCO</a></li>
<li><a href="Continuous_delivery" title="Continuous delivery">CD</a></li>
<li><a href="Continuous_integration" title="Continuous integration">CI</a></li>
<li><a href="Domain-driven_design" title="Domain-driven design">DDD</a></li>
<li><a href="Pair_programming" title="Pair programming">PP</a></li>
<li><a href="Specification_by_example" title="Specification by example">SBE</a></li>
<li><a href="Stand-up_meeting" title="Stand-up meeting">Stand-up</a></li>
<li><a href="Test-driven_development" title="Test-driven development">TDD</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="Programming_tool" title="Programming tool">Tools</a></div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Build_automation" title="Build automation">Build automation</a></li>
<li><a href="Compiler" title="Compiler">Compiler</a></li>
<li><a href="Debugger" title="Debugger">Debugger</a></li>
<li><a href="Graphical_user_interface_builder" title="Graphical user interface builder">GUI builder</a></li>
<li><a href="Integrated_development_environment" title="Integrated development environment">IDE</a></li>
<li><a href="Infrastructure_as_code" title="Infrastructure as code">Infrastructure as code</a></li>
<li><a href="Profiling_(computer_programming)" title="Profiling (computer programming)">Profiler</a></li>
<li><a href="Application-release_automation" title="Application-release automation">Release automation</a></li>
<li><a href="UML_tool" title="UML tool">UML Modeling</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Standards and bodies of knowledge</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li>
<li><a href="IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></li>
<li><a href="International_Requirements_Engineering_Board" title="International Requirements Engineering Board">IREB</a></li>
<li><a href="ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a></li>
<li><a href="ISO/IEC_JTC_1/SC_7" title="ISO/IEC JTC 1/SC 7">ISO/IEC standards</a></li>
<li><a href="ITIL" title="ITIL">ITIL</a></li>
<li><a href="Object_Management_Group" title="Object Management Group">OMG</a></li>
<li><a href="Project_Management_Body_of_Knowledge" title="Project Management Body of Knowledge">PMBOK</a></li>
<li><a href="Software_Engineering_Body_of_Knowledge" title="Software Engineering Body of Knowledge">SWEBOK</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Glossaries</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Glossary_of_artificial_intelligence" title="Glossary of artificial intelligence">Artificial intelligence</a></li>
<li><a href="Glossary_of_computer_science" title="Glossary of computer science">Computer science</a></li>
<li><a href="Glossary_of_electrical_and_electronics_engineering" title="Glossary of electrical and electronics engineering">Electrical and electronics engineering</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Outlines</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Outline_of_software_development" title="Outline of software development">Outline of software development</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p><b>Computer programming</b> or <b>coding</b> is the composition of sequences of instructions, called <a href="Computer_program" title="Computer program">programs</a>, that <a href="Computer" title="Computer">computers</a> can follow to perform tasks.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> It involves designing and implementing <a href="Algorithm" title="Algorithm">algorithms</a>, step-by-step specifications of procedures, by writing <a href="Source_code" title="Source code">code</a> in one or more <a href="Programming_language" title="Programming language">programming languages</a>. Programmers typically use <a href="High-level_programming_language" title="High-level programming language">high-level programming languages</a> that are more easily intelligible to humans than <a href="Machine_code" title="Machine code">machine code</a>, which is directly executed by the <a href="Central_processing_unit" title="Central processing unit">central processing unit</a>. Proficient programming usually requires expertise in several different subjects, including knowledge of the <a href="Domain_(software_engineering)" title="Domain (software engineering)">application domain</a>, details of programming languages and generic code <a href="Library_(computing)" title="Library (computing)">libraries</a>, specialized algorithms, and <a href="Logic#Formal_logic" title="Logic">formal logic</a>.
</p><p>Auxiliary tasks accompanying and related to programming include <a href="Requirements_analysis" title="Requirements analysis">analyzing requirements</a>, <a href="Software_testing" title="Software testing">testing</a>, <a href="Debugging" title="Debugging">debugging</a> (investigating and fixing problems), implementation of <a href="Build_automation" title="Build automation">build systems</a>, and management of derived <a href="Artifact_(software_development)" title="Artifact (software development)">artifacts</a>, such as programs' <a href="Machine_code" title="Machine code">machine code</a>. While these are sometimes considered programming, often the term <i><a href="Software_development" title="Software development">software development</a></i> is used for this larger overall process – with the terms <i>programming</i>, <i>implementation</i>, and <i>coding</i> reserved for the writing and editing of code per se. Sometimes software development is known as <i><a href="Software_engineering" title="Software engineering">software engineering</a></i>, especially when it employs <a href="Formal_methods" title="Formal methods">formal methods</a> or follows an <a href="Engineering_design_process" title="Engineering design process">engineering design process</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="Computer_program#History" title="Computer program">Computer program § History</a>, <a href="Programmer#History" title="Programmer">Programmer § History</a>, and <a href="History_of_programming_languages" title="History of programming languages">History of programming languages</a></div>
<p><a href="Program_(machine)" title="Program (machine)">Programmable devices</a> have existed for centuries. As early as the 9th century, a programmable <a href="Music_sequencer" title="Music sequencer">music sequencer</a> was invented by the Persian <a href="Banu_Musa" class="mw-redirect" title="Banu Musa">Banu Musa</a> brothers, who described an automated mechanical <a href="Flute" title="Flute">flute</a> player in the <i><a href="Book_of_Ingenious_Devices" title="Book of Ingenious Devices">Book of Ingenious Devices</a></i>.<sup id="cite_ref-Koetsier_3-0" class="reference"><a href="#cite_note-Koetsier-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> In 1206, the Arab engineer <a href="Al-Jazari" class="mw-redirect" title="Al-Jazari">Al-Jazari</a> invented a programmable <a href="Drum_machine" title="Drum machine">drum machine</a> where a musical mechanical <a href="Automaton" title="Automaton">automaton</a> could be made to play different rhythms and drum patterns, via pegs and <a href="Cam_(mechanism)" title="Cam (mechanism)">cams</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Sharkey_6-0" class="reference"><a href="#cite_note-Sharkey-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> In 1801, the <a href="Jacquard_loom" class="mw-redirect" title="Jacquard loom">Jacquard loom</a> could produce entirely different weaves by changing the "program" – a series of <a href="Card_stock" title="Card stock">pasteboard</a> cards with holes punched in them.
</p><p><a href="Code-breaking" class="mw-redirect" title="Code-breaking">Code-breaking</a> algorithms have also existed for centuries. In the 9th century, the <a href="Mathematics_in_medieval_Islam" class="mw-redirect" title="Mathematics in medieval Islam">Arab mathematician</a> <a href="Al-Kindi" title="Al-Kindi">Al-Kindi</a> described a <a href="Cryptographic" class="mw-redirect" title="Cryptographic">cryptographic</a> algorithm for deciphering encrypted code, in <i>A Manuscript on Deciphering Cryptographic Messages</i>. He gave the first description of <a href="Cryptanalysis" title="Cryptanalysis">cryptanalysis</a> by <a href="Frequency_analysis" title="Frequency analysis">frequency analysis</a>, the earliest code-breaking algorithm.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p><p>The first <a href="Computer_program" title="Computer program">computer program</a> is generally dated to 1843 when mathematician <a href="Ada_Lovelace" title="Ada Lovelace">Ada Lovelace</a> published an <a href="Algorithm" title="Algorithm">algorithm</a> to calculate a sequence of <a href="Bernoulli_numbers" class="mw-redirect" title="Bernoulli numbers">Bernoulli numbers</a>, intended to be carried out by <a href="Charles_Babbage" title="Charles Babbage">Charles Babbage</a>'s <a href="Analytical_Engine" class="mw-redirect" title="Analytical Engine">Analytical Engine</a>.<sup id="cite_ref-IEEE_8-0" class="reference"><a href="#cite_note-IEEE-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> The algorithm, which was conveyed through notes on a translation of Luigi Federico Menabrea's paper on the analytical engine was mainly conceived by Lovelace as can be discerned through her correspondence with Babbage. However, Charles Babbage himself had written a program for the AE in 1837.<sup id="cite_ref-IEEE2021_9-0" class="reference"><a href="#cite_note-IEEE2021-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-IEEE2024_10-0" class="reference"><a href="#cite_note-IEEE2024-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Lovelace was also the first to see a broader application for the analytical engine beyond mathematical calculations.
</p>
<p>In the 1880s, <a href="Herman_Hollerith" title="Herman Hollerith">Herman Hollerith</a> invented the concept of storing <i>data</i> in machine-readable form.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Later a <a href="Plugboard" title="Plugboard">control panel</a> (plug board) added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, and by the late 1940s, <a href="Unit_record_equipment" title="Unit record equipment">unit record equipment</a> such as the <a href="IBM_602" title="IBM 602">IBM 602</a> and <a href="IBM_604" title="IBM 604">IBM 604</a>, were programmed by control panels in a similar way, as were the first <a href="Electronic_computer" class="mw-redirect" title="Electronic computer">electronic computers</a>. However, with the concept of the <a href="Stored-program_computer" title="Stored-program computer">stored-program computer</a> introduced in 1949, both programs and data were stored and manipulated in the same way in <a href="Computer_memory" title="Computer memory">computer memory</a>.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Machine_language">Machine language</h3></div>
<p><a href="Machine_code" title="Machine code">Machine code</a> was the language of early programs, written in the <a href="Instruction_set_architecture" title="Instruction set architecture">instruction set</a> of the particular machine, often in <a href="Binary_numeral_system" class="mw-redirect" title="Binary numeral system">binary</a> notation. <a href="Assembly_language" title="Assembly language">Assembly languages</a> were soon developed that let the programmer specify instructions in a text format (e.g., ADD X, TOTAL), with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language is little more than a different notation for a machine language, two machines with <a href="Comparison_of_instruction_set_architectures" title="Comparison of instruction set architectures">different instruction sets</a> also have different assembly languages.
</p>
<div class="mw-heading mw-heading3"><h3 id="Compiler_languages">Compiler languages</h3></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Compiler" title="Compiler">Compiler</a></div>
<p><a href="High-level_language" class="mw-redirect" title="High-level language">High-level languages</a> made the process of developing a program simpler and more understandable, and less bound to the underlying <a href="Computer_hardware" title="Computer hardware">hardware</a>.
The first compiler related tool, the <a href="A-0_System" title="A-0 System">A-0 System</a>, was developed in 1952<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> by <a href="Grace_Hopper" title="Grace Hopper">Grace Hopper</a>, who also coined the term 'compiler'.<sup id="cite_ref-wikles1968_14-0" class="reference"><a href="#cite_note-wikles1968-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-computerhistory.org_15-0" class="reference"><a href="#cite_note-computerhistory.org-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> <a href="FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a>, the first widely used high-level language to have a functional implementation, came out in 1957,<sup id="cite_ref-bergstein_16-0" class="reference"><a href="#cite_note-bergstein-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> and many other languages were soon developed—in particular, <a href="COBOL" title="COBOL">COBOL</a> aimed at commercial data processing, and <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a> for computer research.
</p><p>These compiled languages allow the programmer to write programs in terms that are syntactically richer, and more capable of <a href="Abstraction_(computer_science)" title="Abstraction (computer science)">abstracting</a> the code, making it easy to target varying machine instruction sets via compilation declarations and <a href="Heuristic_(computer_science)" title="Heuristic (computer science)">heuristics</a>. Compilers harnessed the power of computers to make programming easier<sup id="cite_ref-bergstein_16-1" class="reference"><a href="#cite_note-bergstein-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> by allowing programmers to specify calculations by entering a formula using <a href="Infix_notation" title="Infix notation">infix notation</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Source_code_entry">Source code entry</h3></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Computer_programming_in_the_punched_card_era" title="Computer programming in the punched card era">Computer programming in the punched card era</a></div>
<p>Programs were mostly entered using punched cards or <a href="Paper_tape" class="mw-redirect" title="Paper tape">paper tape</a>. By the late 1960s, <a href="Data_storage_device" class="mw-redirect" title="Data storage device">data storage devices</a> and <a href="Computer_terminal" title="Computer terminal">computer terminals</a> became inexpensive enough that programs could be created by typing directly into the computers. <a href="Text_editor" title="Text editor">Text editors</a> were also developed that allowed changes and corrections to be made much more easily than with <a href="Punched_card_sorter" title="Punched card sorter">punched cards</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Modern_programming">Modern programming</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Quality_requirements">Quality requirements</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Software_quality" title="Software quality">Software quality</a></div>
<p>Whatever the approach to development may be, the final program must satisfy some fundamental properties. The following properties are among the most important:<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><a href="Reliability_engineering#Software_reliability" title="Reliability engineering">Reliability</a>: how often the results of a program are correct. This depends on conceptual correctness of algorithms and minimization of programming mistakes, such as mistakes in resource management (e.g., <a href="Buffer_overflow" title="Buffer overflow">buffer overflows</a> and <a href="Race_condition" title="Race condition">race conditions</a>) and logic errors (such as division by zero or <a href="Off-by-one_error" title="Off-by-one error">off-by-one errors</a>).</li>
<li><a href="Robustness_(computer_science)" title="Robustness (computer science)">Robustness</a>: how well a program anticipates problems due to errors (not bugs). This includes situations such as incorrect, inappropriate or corrupt data, unavailability of needed resources such as memory, operating system services, and network connections, user error, and unexpected power outages.</li>
<li><a href="Usability" title="Usability">Usability</a>: the <a href="Ergonomics" title="Ergonomics">ergonomics</a> of a program: the ease with which a person can use the program for its intended purpose or in some cases even unanticipated purposes. Such issues can make or break its success even regardless of other issues. This involves a wide range of textual, graphical, and sometimes hardware elements that improve the clarity, intuitiveness, cohesiveness, and completeness of a program's user interface.</li>
<li><a href="Software_portability" title="Software portability">Portability</a>: the range of <a href="Computer_hardware" title="Computer hardware">computer hardware</a> and <a href="Operating_system" title="Operating system">operating system</a> platforms on which the source code of a program can be <a href="Compiled" class="mw-redirect" title="Compiled">compiled</a>/<a href="Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> and run. This depends on differences in the programming facilities provided by the different platforms, including hardware and operating system resources, expected behavior of the hardware and operating system, and availability of platform-specific compilers (and sometimes libraries) for the language of the source code.</li>
<li><a href="Maintainability" title="Maintainability">Maintainability</a>: the ease with which a program can be modified by its present or future developers in order to make improvements or to customize, fix <a href="Software_bug" title="Software bug">bugs</a> and <a href="Vulnerability_(computing)" class="mw-redirect" title="Vulnerability (computing)">security holes</a>, or adapt it to new environments. Good practices<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> during initial development make the difference in this regard. This quality may not be directly apparent to the end user but it can significantly affect the fate of a program over the long term.</li>
<li><a href="Algorithmic_efficiency" title="Algorithmic efficiency">Efficiency</a>/<a href="Performance_engineering" title="Performance engineering">performance</a>: Measure of system resources a program consumes (processor time, memory space, slow devices such as disks, network bandwidth and to some extent even user interaction): the less, the better. This also includes careful management of resources, for example cleaning up <a href="Temporary_file" title="Temporary file">temporary files</a> and eliminating <a href="Memory_leak" title="Memory leak">memory leaks</a>. This is often discussed under the shadow of a chosen programming language. Although the language certainly affects performance, even slower languages, such as <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, can execute programs instantly from a human perspective. Speed, resource usage, and performance are important for programs that <a href="Bottleneck_(software)" title="Bottleneck (software)">bottleneck</a> the system, but efficient use of programmer time is also important and is related to cost: more hardware may be cheaper.</li></ul>
<p>Using <a href="Test_automation" title="Test automation">automated tests</a> and <a href="Fitness_function" title="Fitness function">fitness functions</a> can help to maintain some of the aforementioned attributes.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Readability_of_source_code">Readability of source code</h3></div>
<p>In computer programming, <a href="Readability" title="Readability">readability</a> refers to the ease with which a human reader can comprehend the purpose, <a href="Control_flow" title="Control flow">control flow</a>, and operation of <a href="Source_code" title="Source code">source code</a>. It affects the aspects of quality above, including portability, usability and most importantly maintainability.
</p><p>Readability is important because programmers spend the majority of their time reading, trying to understand, reusing, and modifying existing source code, rather than writing new source code. Unreadable code often leads to bugs, inefficiencies, and <a href="Code_duplication" class="mw-redirect" title="Code duplication">duplicated code</a>. A study found that a few simple readability transformations made code shorter and drastically reduced the time to understand it.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p><p>Following a consistent <a href="Programming_style" title="Programming style">programming style</a> often helps readability. However, readability is more than just programming style. Many factors, having little or nothing to do with the ability of the computer to efficiently compile and execute the code, contribute to readability.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> Some of these factors include:
</p>
<ul><li>Different <a href="Indent_style" class="mw-redirect" title="Indent style">indent styles</a> (whitespace)</li>
<li><a href="Comment_(computer_programming)" title="Comment (computer programming)">Comments</a></li>
<li><a href="Decomposition_(computer_science)" title="Decomposition (computer science)">Decomposition</a></li>
<li><a href="Naming_conventions_(programming)" class="mw-redirect" title="Naming conventions (programming)">Naming conventions</a> for objects (such as variables, classes, functions, procedures, etc.)</li></ul>
<p>The <a href="Separation_of_presentation_and_content" class="mw-redirect" title="Separation of presentation and content">presentation</a> aspects of this (such as indents, line breaks, color highlighting, and so on) are often handled by the <a href="Source_code_editor" class="mw-redirect" title="Source code editor">source code editor</a>, but the content aspects reflect the programmer's talent and skills.
</p><p>Various <a href="Visual_programming_language" title="Visual programming language">visual programming languages</a> have also been developed with the intent to resolve readability concerns by adopting non-traditional approaches to code structure and display. <a href="Integrated_development_environment" title="Integrated development environment">Integrated development environments</a> (IDEs) aim to integrate all such help. Techniques like <a href="Code_refactoring" title="Code refactoring">Code refactoring</a> can enhance readability.
</p>
<div class="mw-heading mw-heading3"><h3 id="Algorithmic_complexity">Algorithmic complexity</h3></div>
<p>The academic field and the engineering practice of computer programming are concerned with discovering and implementing the most efficient algorithms for a given class of problems. For this purpose, algorithms are classified into <i>orders</i> using <a href="Big_O_notation" title="Big O notation">Big O notation</a>, which expresses resource use—such as execution time or memory consumption—in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to the circumstances.
</p>
<div class="mw-heading mw-heading3"><h3 id="Methodologies">Methodologies</h3></div>
<p>The first step in most formal software development processes is <a href="Requirements_analysis" title="Requirements analysis">requirements analysis</a>, followed by testing to determine value modeling, implementation, and failure elimination (debugging). There exist a lot of different approaches for each of those tasks. One approach popular for requirements analysis is <a href="Use_Case" class="mw-redirect" title="Use Case">Use Case</a> analysis. Many programmers use forms of <a href="Agile_software_development" title="Agile software development">Agile software development</a> where the various stages of formal software development are more integrated together into short cycles that take a few weeks rather than years. There are many approaches to the Software development process.
</p><p>Popular modeling techniques include Object-Oriented Analysis and Design (<a href="OOAD" class="mw-redirect" title="OOAD">OOAD</a>) and Model-Driven Architecture (<a href="Model-Driven_Architecture" class="mw-redirect" title="Model-Driven Architecture">MDA</a>). The Unified Modeling Language (<a href="Unified_Modeling_Language" title="Unified Modeling Language">UML</a>) is a notation used for both the OOAD and MDA.
</p><p>A similar technique used for database design is Entity-Relationship Modeling (<a href="Entity-Relationship_Model" class="mw-redirect" title="Entity-Relationship Model">ER Modeling</a>).
</p><p>Implementation techniques include imperative languages (<a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a> or <a href="Procedural_programming" title="Procedural programming">procedural</a>), <a href="Functional_programming" title="Functional programming">functional languages</a>, and <a href="Logic_programming" title="Logic programming">logic programming</a> languages.
</p>
<div class="mw-heading mw-heading3"><h3 id="Measuring_language_usage">Measuring language usage</h3></div>
<p>It is very difficult to determine what are the most popular modern programming languages. Methods of measuring programming language popularity include: counting the number of job advertisements that mention the language,<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> the number of books sold and courses teaching the language (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL).
</p><p>Some languages are popular for writing particular kinds of applications, while other languages are used to write many different kinds of applications. For example, <a href="COBOL" title="COBOL">COBOL</a> is still prevalent in corporate data centers<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> often on large <a href="Mainframe_computer" title="Mainframe computer">mainframe computers</a>, <a href="Fortran" title="Fortran">Fortran</a> in engineering applications, <a href="Scripting_language" title="Scripting language">scripting languages</a> in <a href="World_Wide_Web" title="World Wide Web">Web</a> development, and <a href="C_(programming_language)" title="C (programming language)">C</a> in <a href="Embedded_software" title="Embedded software">embedded software</a>. Many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a prior language with new functionality added, (for example <a href="C%2B%2B" title="C++">C++</a> adds object-orientation to C, and <a href="Java_(programming_language)" title="Java (programming language)">Java</a> adds memory management and <a href="Bytecode" title="Bytecode">bytecode</a> to C++, but as a result, loses efficiency and the ability for low-level manipulation).
</p>
<div class="mw-heading mw-heading3"><h3 id="Debugging">Debugging</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Debugging" title="Debugging">Debugging</a></div>
<p>Debugging is a very important task in the software development process since having defects in a program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compilers to perform as much checking as other languages. Use of a <a href="Static_code_analysis" class="mw-redirect" title="Static code analysis">static code analysis</a> tool can help detect some possible problems. Normally the first step in debugging is to attempt to reproduce the problem. This can be a non-trivial task, for example as with parallel processes or some unusual software bugs. Also, specific user environment and usage history can make it difficult to reproduce the problem.
</p><p>After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, when a bug in a compiler can make it crash when <a href="Parsing" title="Parsing">parsing</a> some large source file, a simplification of the test case that results in only few lines from the original source file can be sufficient to reproduce the same crash. Trial-and-error/divide-and-conquer is needed: the programmer will try to remove some parts of the original test case and check if the problem still exists. When debugging the problem in a GUI, the programmer can try to skip some user interaction from the original problem description and check if the remaining actions are sufficient for bugs to appear. Scripting and <a href="Breakpoint" title="Breakpoint">breakpointing</a> are also part of this process.
</p><p>Debugging is often done with <a href="Integrated_development_environment" title="Integrated development environment">IDEs</a>. Standalone debuggers like <a href="GDB" class="mw-redirect" title="GDB">GDB</a> are also used, and these often provide less of a visual environment, usually using a <a href="Command_line" class="mw-redirect" title="Command line">command line</a>. Some text editors such as <a href="Emacs" title="Emacs">Emacs</a> allow GDB to be invoked through them, to provide a visual environment.
</p>
<div class="mw-heading mw-heading2"><h2 id="Programming_languages">Programming languages</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main articles: <a href="Programming_language" title="Programming language">Programming language</a> and <a href="List_of_programming_languages" title="List of programming languages">List of programming languages</a></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Computer_program#Languages" title="Computer program">Computer program § Languages</a>, and <a href="List_of_open-source_programming_languages" title="List of open-source programming languages">List of open-source programming languages</a></div>
<p>Different programming languages support different styles of programming (called <i><a href="Programming_paradigm" title="Programming paradigm">programming paradigms</a></i>). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Languages form an approximate spectrum from "low-level" to "high-level"; "low-level" languages are typically more machine-oriented and faster to execute, whereas "high-level" languages are more abstract and easier to use but execute less quickly. It is usually easier to code in "high-level" languages than in "low-level" ones.
Programming languages are essential for software development. They are the building blocks for all software, from the simplest applications to the most sophisticated ones.
</p><p><a href="Allen_Downey" class="mw-redirect" title="Allen Downey">Allen Downey</a>, in his book <i>How To Think Like A Computer Scientist</i>, writes:
</p>
<dl><dd>The details look different in different languages, but a few basic instructions appear in just about every language:
<ul><li>Input: Gather data from the keyboard, a file, or some other device.</li>
<li>Output: Display data on the screen or send data to a file or other device.</li>
<li>Arithmetic: Perform basic arithmetical operations like addition and multiplication.</li>
<li>Conditional Execution: Check for certain conditions and execute the appropriate sequence of statements.</li>
<li>Repetition: Perform some action repeatedly, usually with some variation.</li></ul></dd></dl>
<p>Many computer languages provide a mechanism to call functions provided by <a href="Shared_library" title="Shared library">shared libraries</a>. Provided the functions in a library follow the appropriate run-time conventions (e.g., method of passing <a href="Argument_(computer_science)" class="mw-redirect" title="Argument (computer science)">arguments</a>), then these functions may be written in any other language.
</p>
<div class="mw-heading mw-heading2"><h2 id="Learning_to_program">Learning to program</h2></div>
<p>Learning to program has a long history related to professional standards and practices, academic initiatives and curriculum, and commercial books and materials for students, self-taught learners, hobbyists, and others who desire to create or customize software for personal use. Since the 1960s, learning to program has taken on the characteristics of a <i>popular movement</i>, with the rise of academic disciplines, inspirational leaders, collective identities, and strategies to grow the movement and make institutionalize change.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> Through these social ideals and educational agendas, learning to code has become important not just for scientists and engineers, but for millions of citizens who have come to believe that creating software is beneficial to society and its members.
</p>
<div class="mw-heading mw-heading3"><h3 id="Context">Context</h3></div>
<p>In 1957, there were approximately 15,000 computer programmers employed in the U.S., a figure that accounts for 80% of the world's active developers. In 2014, there were approximately 18.5 million professional programmers in the world, of which 11 million can be considered professional and 7.5 million student or hobbyists.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> Before the rise of the commercial Internet in the mid-1990s, most programmers learned about software construction through books, magazines, user groups, and informal instruction methods, with academic coursework and corporate training playing important roles for professional workers.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p><p>The first book containing specific instructions about how to program a computer may have been <a href="Maurice_Wilkes" title="Maurice Wilkes">Maurice Wilkes</a>, <a href="David_Wheeler_(computer_scientist)" title="David Wheeler (computer scientist)">David Wheeler</a>, and <a href="Stanley_Gill" title="Stanley Gill">Stanley Gill's</a> <i>Preparation of Programs for an Electronic Digital Computer</i> (1951). The book offered a selection of common subroutines for handling basic operations on the EDSAC, one of the world's first stored-program computers.
</p><p>When high-level languages arrived, they were introduced by numerous books and materials that explained language keywords, managing program flow, working with data, and other concepts. These languages included <a href="FLOW-MATIC" title="FLOW-MATIC">FLOW-MATIC</a>, COBOL, FORTRAN, <a href="ALGOL" title="ALGOL">ALGOL</a>, <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="BASIC" title="BASIC">BASIC</a>, and C. An example of an early programming primer from these years is <a href="Marshal_Henry_Wrubel" title="Marshal Henry Wrubel">Marshal H. Wrubel's</a> <i>A Primer of Programming for Digital Computers</i> (1959), which included step-by-step instructions for filling out coding sheets, creating punched cards, and using the keywords in IBM's early FORTRAN system.<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> <a href="Daniel_McCracken" class="mw-redirect" title="Daniel McCracken">Daniel McCracken's</a> <i>A Guide to FORTRAN Programming</i> (1961) presented FORTRAN to a larger audience, including students and office workers.
</p><p>In 1961, <a href="Alan_Perlis" title="Alan Perlis">Alan Perlis</a> suggested that all university freshmen at Carnegie Technical Institute take a course in computer programming.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> His advice was published in the popular technical journal <i>Computers and Automation</i>, which became a regular source of information for professional programmers.
</p><p>Programmers soon had a range of learning texts at their disposal. <i>Programmer's references</i> listed keywords and functions related to a language, often in alphabetical order, as well as technical information about compilers and related systems. An early example was IBM's <i>Programmers' Reference Manual: the FORTRAN Automatic Coding System for the IBM 704 EDPM</i> (1956).
</p><p>Over time, the genre of <i>programmer's guides</i> emerged, which presented the features of a language in tutorial or step by step format. Many early primers started with a program known as <a href="Helloworld" class="mw-redirect" title="Helloworld">"Hello, World"</a>, which presented the shortest program a developer could create in a given system. Programmer's guides then went on to discuss core topics like declaring variables, data types, formulas, flow control, user-defined functions, manipulating data, and other topics.
</p><p>Early and influential programmer's guides included <a href="John_G._Kemeny" title="John G. Kemeny">John G. Kemeny</a> and <a href="Thomas_E._Kurtz" title="Thomas E. Kurtz">Thomas E. Kurtz's</a> <i>BASIC Programming</i> (1967), Kathleen Jensen and <a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth's</a> <i>The Pascal User Manual and Report</i> (1971), and <a href="Brian_W._Kernighan" class="mw-redirect" title="Brian W. Kernighan">Brian W. Kernighan</a> and <a href="Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie's</a> <i>The C Programming Language</i> (1978). Similar books for popular audiences (but with a much lighter tone) included <a href="Bob_Albrecht" title="Bob Albrecht">Bob Albrecht's</a> <i>My Computer Loves Me When I Speak BASIC</i> (1972), Al Kelley and Ira Pohl's <i>A Book on C</i> (1984), and <a href="Dan_Gookin" title="Dan Gookin">Dan Gookin's</a> <i>C for Dummies</i> (1994).
</p><p>Beyond language-specific primers, there were numerous books and academic journals that introduced professional programming practices. Many were designed for university courses in computer science, software engineering, or related disciplines. <a href="Donald_Knuth" title="Donald Knuth">Donald Knuth's</a> <i><a href="The_Art_of_Computer_Programming" title="The Art of Computer Programming">The Art of Computer Programming</a></i> (1968 and later), presented hundreds of computational algorithms and their analysis. <i>The Elements of Programming Style</i> (1974), by Brian W. Kernighan and <a href="P._J._Plauger" title="P. J. Plauger">P. J. Plauger</a>, concerned itself with programming <i>style</i>, the idea that programs should be written not only to satisfy the compiler but human readers. <a href="Jon_Bentley_(computer_scientist)" title="Jon Bentley (computer scientist)">Jon Bentley's</a> <i>Programming Pearls</i> (1986) offered practical advice about the art and craft of programming in professional and academic contexts. Texts specifically designed for students included Doug Cooper and Michael Clancy's <i>Oh Pascal!</i> (1982), <a href="Alfred_Aho" title="Alfred Aho">Alfred Aho's</a> <i>Data Structures and Algorithms</i> (1983), and Daniel Watt's <i>Learning with Logo</i> (1983).
</p>
<div class="mw-heading mw-heading3"><h3 id="Technical_publishers">Technical publishers</h3></div>
<p>As personal computers became mass-market products, thousands of trade books and magazines sought to teach professional, hobbyist, and casual users to write computer programs. A sample of these learning resources includes <i>BASIC Computer Games, Microcomputer Edition</i> (1978), by <a href="David_Ahl" class="mw-redirect" title="David Ahl">David Ahl</a>; <i>Programming the Z80</i> (1979), by <a href="Rodnay_Zaks" title="Rodnay Zaks">Rodnay Zaks</a>; <i>Programmer's CP/M Handbook</i> (1983), by <a href="Andy_Johnson-Laird" title="Andy Johnson-Laird">Andy Johnson-Laird</a>; <i>C Primer Plus</i> (1984), by <a href="Mitchell_Waite" title="Mitchell Waite">Mitchell Waite</a> and The Waite Group; <i>The Peter Norton Programmer's Guide to the IBM PC</i> (1985), by <a href="Peter_Norton" title="Peter Norton">Peter Norton</a>; <i>Advanced MS-DOS</i> (1986), by Ray Duncan; <i><a href="Learn_BASIC_Now" title="Learn BASIC Now">Learn BASIC Now</a></i> (1989), by <a href="Michael_Halvorson" title="Michael Halvorson">Michael Halvorson</a> and David Rygymr; <i>Programming Windows</i> (1992 and later), by <a href="Charles_Petzold" title="Charles Petzold">Charles Petzold</a>; <i>Code Complete: A Practical Handbook for Software Construction</i> (1993), by <a href="Steve_McConnell" title="Steve McConnell">Steve McConnell</a>; and <i>Tricks of the Game-Programming Gurus</i> (1994), by <a href="Andre_LaMothe" class="mw-redirect" title="Andre LaMothe">André LaMothe</a>.
</p><p>The PC software industry spurred the creation of numerous book publishers that offered programming primers and tutorials, as well as books for advanced software developers.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> These publishers included <a href="Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>, <a href="IDG" class="mw-redirect" title="IDG">IDG</a>, <a href="Macmillan_Inc." title="Macmillan Inc.">Macmillan Inc.</a>, <a href="McGraw-Hill" class="mw-redirect" title="McGraw-Hill">McGraw-Hill</a>, <a href="Microsoft_Press" title="Microsoft Press">Microsoft Press</a>, <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>, <a href="Prentice_Hall" title="Prentice Hall">Prentice Hall</a>, Sybex, Ventana Press, Waite Group Press, <a href="Wiley_(publisher)" title="Wiley (publisher)">Wiley</a>, <a href="Wrox_Press" title="Wrox Press">Wrox Press</a>, and <a href="Ziff-Davis" class="mw-redirect" title="Ziff-Davis">Ziff-Davis</a>.
</p><p><a href="Computer_magazine" title="Computer magazine">Computer magazines</a> and journals also provided learning content for professional and hobbyist programmers. A partial list of these resources includes <i><a href="Amiga_World" title="Amiga World">Amiga World</a></i>, <i><a href="Byte_(magazine)" title="Byte (magazine)">Byte (magazine)</a></i>, <i><a href="Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>, <i><a href="Computer_(magazine)" title="Computer (magazine)">Computer (magazine)</a></i>, <i><a href="Compute!" title="Compute!">Compute!</a></i>, <i>Computer Language (magazine)</i>, <i><a href="Computers_and_Electronics" class="mw-redirect" title="Computers and Electronics">Computers and Electronics</a></i>, <i><a href="Dr._Dobb's_Journal" title="Dr. Dobb's Journal">Dr. Dobb's Journal</a></i>, <i><a href="IEEE_Software" title="IEEE Software">IEEE Software</a></i>, <i><a href="Macworld" title="Macworld">Macworld</a></i>, <i><a href="PC_Magazine" class="mw-redirect" title="PC Magazine">PC Magazine</a></i>, <i><a href="PC/Computing" title="PC/Computing">PC/Computing</a></i>, and <i><a href="UnixWorld" title="UnixWorld">UnixWorld</a></i>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Digital_learning_/_online_resources">Digital learning / online resources</h3></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Online_integrated_development_environment" title="Online integrated development environment">List of online integrated development environments</a> and <a href="List_of_educational_software#Computer_science" title="List of educational software">List of educational software for computer programming</a></div>
<p>Between 2000 and 2010, computer book and magazine publishers declined significantly as providers of programming instruction, as programmers moved to Internet resources to expand their access to information. This shift brought forward new digital products and mechanisms to learn programming skills. During the transition, digital books from publishers transferred information that had traditionally been delivered in print to new and expanding audiences.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>
</p><p>Important Internet resources for learning to code included blogs, wikis, videos, online databases, subscription sites, and custom websites focused on coding skills. New commercial resources included <a href="YouTube" title="YouTube">YouTube</a> videos, Lynda.com tutorials (later <a href="LinkedIn_Learning" title="LinkedIn Learning">LinkedIn Learning</a>), <a href="Khan_Academy" title="Khan Academy">Khan Academy</a>, <a href="Codecademy" title="Codecademy">Codecademy</a>, <a href="GitHub" title="GitHub">GitHub</a>, <a href="W3Schools" title="W3Schools">W3Schools</a>, <a href="Codewars" title="Codewars">Codewars</a>, and numerous <a href="Coding_bootcamp" title="Coding bootcamp">coding bootcamps</a>.
</p><p>Most software development systems and <a href="Game_engine" title="Game engine">game engines</a> included rich online help resources, including <a href="Integrated_development_environment" title="Integrated development environment">integrated development environments</a> (IDEs), <a href="Context-sensitive_help" title="Context-sensitive help">context-sensitive help</a>, <a href="API" title="API">APIs</a>, and other digital resources. Commercial <a href="Software_development_kit" title="Software development kit">software development kits</a> (SDKs) also provided a collection of software development tools and documentation in one installable package.
</p><p>Commercial and non-profit organizations published learning websites for developers, created blogs, and established newsfeeds and social media resources about programming. Corporations like <a href="Apple_Inc." title="Apple Inc.">Apple</a>, <a href="Microsoft" title="Microsoft">Microsoft</a>, <a href="Oracle_Corporation" title="Oracle Corporation">Oracle</a>, <a href="Google" title="Google">Google</a>, and <a href="Amazon_(company)" title="Amazon (company)">Amazon</a> built corporate websites providing support for programmers, including resources like the <a href="Microsoft_Developer_Network" title="Microsoft Developer Network">Microsoft Developer Network</a> (MSDN). Contemporary movements like Hour of Code (<a href="Code.org" title="Code.org">Code.org</a>) show how learning to program has become associated with digital learning strategies, education agendas, and corporate philanthropy.
</p>
<div class="mw-heading mw-heading2"><h2 id="Programmers">Programmers</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main articles: <a href="Programmer" title="Programmer">Programmer</a> and <a href="Software_engineer" class="mw-redirect" title="Software engineer">Software engineer</a></div>
<p>Computer programmers are those who write computer software. Their jobs usually involve:
</p>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */
.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}
/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 30em;">
<ul><li>Prototyping</li>
<li>Coding</li>
<li>Debugging</li>
<li><a href="Documentation" title="Documentation">Documentation</a></li>
<li><a href="System_integration" title="System integration">Integration</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Maintenance</a></li>
<li>Requirements analysis</li>
<li><a href="Software_architecture" title="Software architecture">Software architecture</a></li>
<li>Software testing</li>
<li><a href="Specification" class="mw-redirect" title="Specification">Specification</a></li></ul>
</div><p>Although programming has been presented in the media as a somewhat mathematical subject, some research shows that good programmers have strong skills in natural human languages, and that learning to code is similar to learning a <a href="Foreign_language" title="Foreign language">foreign language</a>.<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup>
</p><div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */
.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}
/* end https://en.wikipedia.org/ */
</style>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Outline_of_computer_programming" title="Outline of computer programming">Outline of computer programming</a></div>
<ul><li><a href="Code_smell" title="Code smell">Code smell</a></li>
<li><a href="Computer_network" title="Computer network">Computer networking</a></li>
<li><a href="Competitive_programming" title="Competitive programming">Competitive programming</a></li>
<li><a href="List_of_software_programming_journals" title="List of software programming journals">List of software programming journals</a></li>
<li><a href="List_of_free_and_open-source_software_packages#Programming_language_support" title="List of free and open-source software packages">List of free and open-source software packages for programming</a></li>
<li><a href="Programming_best_practices" class="mw-redirect" title="Programming best practices">Programming best practices</a></li>
<li><a href="Systems_programming" title="Systems programming">Systems programming</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFBebbington2014" class="citation web cs1">Bebbington, Shaun (2014). <a rel="nofollow" class="external text" href="https://yearofcodes.tumblr.com/what-is-coding">"What is coding"</a>. <i>Tumblr</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429195646/https://yearofcodes.tumblr.com/what-is-coding">Archived</a> from the original on April 29, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">March 3,</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFBebbington2014" class="citation web cs1">Bebbington, Shaun (2014). <a rel="nofollow" class="external text" href="https://yearofcodes.tumblr.com/what-is-programming">"What is programming"</a>. <i>Tumblr</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429195958/https://yearofcodes.tumblr.com/what-is-programming">Archived</a> from the original on April 29, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">March 3,</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-Koetsier-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Koetsier_3-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFKoetsier2001" class="citation journal cs1">Koetsier, Teun (2001). "On the prehistory of programmable machines: musical automata, looms, calculators". <i>Mechanism and Machine Theory</i>. <b>36</b> (5). Elsevier: <span class="nowrap">589–</span>603. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2FS0094-114X%2801%2900005-2">10.1016/S0094-114X(01)00005-2</a>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFKapurCarnegieMurphyLong2017" class="citation journal cs1">Kapur, Ajay; Carnegie, Dale; Murphy, Jim; Long, Jason (2017). <a rel="nofollow" class="external text" href="https://doi.org/10.1017%2FS1355771817000103">"Loudspeakers Optional: A history of non-loudspeaker-based electroacoustic music"</a>. <i><a href="Organised_Sound" title="Organised Sound">Organised Sound</a></i>. <b>22</b> (2). <a href="Cambridge_University_Press" title="Cambridge University Press">Cambridge University Press</a>: <span class="nowrap">195–</span>205. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1017%2FS1355771817000103">10.1017/S1355771817000103</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1355-7718">1355-7718</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFFowler1967" class="citation journal cs1">Fowler, Charles B. (October 1967). "The Museum of Music: A History of Mechanical Instruments". <i>Music Educators Journal</i>. <b>54</b> (2): <span class="nowrap">45–</span>49. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.2307%2F3391092">10.2307/3391092</a>. <a href="JSTOR_(identifier)" class="mw-redirect" title="JSTOR (identifier)">JSTOR</a> <a rel="nofollow" class="external text" href="https://www.jstor.org/stable/3391092">3391092</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:190524140">190524140</a>.</cite></span>
</li>
<li id="cite_note-Sharkey-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-Sharkey_6-0">^</a></b></span> <span class="reference-text"><a href="Noel_Sharkey" title="Noel Sharkey">Noel Sharkey</a> (2007), <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070629182810/http://www.shef.ac.uk/marcoms/eview/articles58/robot.html">A 13th Century Programmable Robot</a>, <a href="University_of_Sheffield" title="University of Sheffield">University of Sheffield</a></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFDooley2013" class="citation book cs1">Dooley, John F. (2013). <i>A Brief History of Cryptology and Cryptographic Algorithms</i>. Springer Science & Business Media. pp. <span class="nowrap">12–</span>3. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9783319016283</bdi>.</cite></span>
</li>
<li id="cite_note-IEEE-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-IEEE_8-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFuegiFrancis2003" class="citation journal cs1">Fuegi, J.; Francis, J. (2003). "Lovelace & Babbage and the Creation of the 1843 'notes'". <i>IEEE Annals of the History of Computing</i>. <b>25</b> (4): 16. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMAHC.2003.1253887">10.1109/MAHC.2003.1253887</a>.</cite></span>
</li>
<li id="cite_note-IEEE2021-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-IEEE2021_9-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFRojas2021" class="citation journal cs1">Rojas, R. (2021). "The Computer Programs of Charles Babbage". <i>IEEE Annals of the History of Computing</i>. <b>43</b> (1): <span class="nowrap">6–</span>18. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMAHC.2020.3045717">10.1109/MAHC.2020.3045717</a>.</cite></span>
</li>
<li id="cite_note-IEEE2024-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-IEEE2024_10-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFRojas2024" class="citation journal cs1">Rojas, R. (2024). <a rel="nofollow" class="external text" href="https://refubium.fu-berlin.de/bitstream/fub188/44090/1/3624731.pdf">"The First Computer Program"</a> <span class="cs1-format">(PDF)</span>. <i>Communications of the ACM</i>. <b>67</b> (6): <span class="nowrap">78–</span>81. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3624731">10.1145/3624731</a></span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFda_Cruz2020" class="citation web cs1">da Cruz, Frank (March 10, 2020). <a rel="nofollow" class="external text" href="http://www.columbia.edu/acis/history/hollerith.html">"Columbia University Computing History – Herman Hollerith"</a>. <i>Columbia University</i>. Columbia.edu. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429210742/http://www.columbia.edu/cu/computinghistory/hollerith.html">Archived</a> from the original on April 29, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">April 25,</span> 2010</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.computerhistory.org/timeline/memory-storage/">"Memory & Storage | Timeline of Computer History | Computer History Museum"</a>. <i>www.computerhistory.org</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210527071533/https://www.computerhistory.org/timeline/memory-storage/">Archived</a> from the original on May 27, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">June 3,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFRidgway1952" class="citation book cs1">Ridgway, Richard (1952). "Compiling routines". <i>Proceedings of the 1952 ACM national meeting (Toronto) on - ACM '52</i>. pp. <span class="nowrap">1–</span>5. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F800259.808980">10.1145/800259.808980</a></span>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781450379250</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14878552">14878552</a>.</cite> <span class="cs1-hidden-error citation-comment"><code class="cs1-code">{{cite book}}</code>: </span><span class="cs1-hidden-error citation-comment">ISBN / Date incompatibility (help)</span></span>
</li>
<li id="cite_note-wikles1968-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikles1968_14-0">^</a></b></span> <span class="reference-text"><a href="Maurice_V._Wilkes" class="mw-redirect" title="Maurice V. Wilkes">Maurice V. Wilkes</a>. 1968. Computers Then and Now. Journal of the Association for Computing Machinery, 15(1):1–7, January. p. 3 (a comment in brackets added by editor), "(I do not think that the term compiler was then [1953] in general use, although it had in fact been introduced by Grace Hopper.)"</span>
</li>
<li id="cite_note-computerhistory.org-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-computerhistory.org_15-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="http://www.computerhistory.org/events/lectures/cobol_06121997/index.shtml">[1]</a> The World's First COBOL Compilers <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111013021915/http://www.computerhistory.org/events/lectures/cobol_06121997/index.shtml">Archived</a> 13 October 2011 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span>
</li>
<li id="cite_note-bergstein-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-bergstein_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-bergstein_16-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBergstein2007" class="citation web cs1">Bergstein, Brian (March 20, 2007). <a rel="nofollow" class="external text" href="https://www.nbcnews.com/id/wbna17704662">"Fortran creator John Backus dies"</a>. <i>NBC News</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429211030/http://www.nbcnews.com/id/17704662">Archived</a> from the original on April 29, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">April 25,</span> 2010</span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite class="citation magazine cs1"><a rel="nofollow" class="external text" href="https://www.informationweek.com/cloud/nist-to-develop-cloud-roadmap/d/d-id/1093958?">"NIST To Develop Cloud Roadmap"</a>. <i><a href="InformationWeek" title="InformationWeek">InformationWeek</a></i>. November 5, 2010. <q>Computing initiative seeks to remove barriers to cloud adoption in security, interoperability, portability and reliability.</q></cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite class="citation news cs1">"What is it based on". <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>. April 9, 1984. p. 13. <q>Is it based on ... Reliability Portability. Compatibility</q></cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://wisdomgeek.com/programming/tips-become-good-programmer">"Programming 101: Tips to become a good programmer - Wisdom Geek"</a>. <i>Wisdom Geek</i>. May 19, 2016. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160523063915/http://wisdomgeek.com/programming/tips-become-good-programmer">Archived</a> from the original on May 23, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">May 23,</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>Fundamentals of Software Architecture: An Engineering Approach</i>. O'Reilly Media. 2020. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1492043454</bdi>.</cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite id="CITEREFElshoffMarcotty1982" class="citation journal cs1">Elshoff, James L.; Marcotty, Michael (1982). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F358589.358596">"Improving computer program readability to aid modification"</a>. <i>Communications of the ACM</i>. <b>25</b> (8): <span class="nowrap">512–</span>521. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F358589.358596">10.1145/358589.358596</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:30026641">30026641</a>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite id="CITEREFMultiple_(wiki)" class="citation web cs1">Multiple (wiki). <a rel="nofollow" class="external text" href="http://docforge.com/wiki/Readability">"Readability"</a>. <i>Docforge</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200429211203/http://www.docforge.com/wiki/Readability">Archived</a> from the original on April 29, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">January 30,</span> 2010</span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite id="CITEREFEnticknap2007" class="citation web cs1">Enticknap, Nicholas (September 11, 2007). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="http://www.computerweekly.com/Articles/2007/09/11/226631/sslcomputer-weekly-it-salary-survey-finance-boom-drives-it-job.htm">"SSL/Computer Weekly IT salary survey: finance boom drives IT job growth"</a></span>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111026035734/http://www.computerweekly.com/Articles/2007/09/11/226631/SSLComputer-Weekly-IT-salary-survey-finance-boom-drives-IT-job.htm">Archived</a> from the original on October 26, 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">June 24,</span> 2009</span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFMitchell2012" class="citation web cs1">Mitchell, Robert (May 21, 2012). <a rel="nofollow" class="external text" href="http://www.computerworld.com/article/2504568/data-center/the-cobol-brain-drain.html">"The Cobol Brain Drain"</a>. Computer World. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190212185631/https://www.computerworld.com/article/2504568/data-center/the-cobol-brain-drain.html">Archived</a> from the original on February 12, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">May 9,</span> 2015</span>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nationalgeographic.org/thisday/sep9/worlds-first-computer-bug">"Photograph courtesy Naval Surface Warfare Center, Dahlgren, Virginia, from National Geographic Sept. 1947"</a>. July 15, 2020. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201113163443/https://www.nationalgeographic.org/thisday/sep9/worlds-first-computer-bug/">Archived</a> from the original on November 13, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">November 10,</span> 2020</span>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite id="CITEREFHalvorson2020" class="citation book cs1">Halvorson, Michael J. (2020). <i>Code Nation: Personal Computing and the Learn to Program Movement in America</i>. New York, NY: ACM Books. pp. <span class="nowrap">3–</span>6.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>2014 Worldwide Software Developer and ICT-Skilled Worker Estimates</i>. Framingham, MA: International Data Corporation. 2014.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite id="CITEREFEnsmenger2010" class="citation book cs1">Ensmenger, Nathan (2010). <i>The Computer Boys Take Over: Computers, Programmers, and the Politics and Technical Expertise</i>. Cambridge, MA: The MIT Press.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite id="CITEREFHalvorson2020" class="citation book cs1">Halvorson, Michael J. (2020). <i>Code Nation: Personal Computing and the Learn to Program Movement in America</i>. New York, NY: ACM Books. p. 80.</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite id="CITEREFPerlis1961" class="citation news cs1">Perlis, Alan (1961). "The role of the digital computer in the university". <i>Computers and Automation 10, 4 and 4B</i>. pp. <span class="nowrap">10–</span>15.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite id="CITEREFHalvorson2020" class="citation book cs1">Halvorson, Michael J. (2020). <i>Code Nation: Personal Computing and the Learn to Program Movement in America</i>. New York, NY: ACM Books. p. 352.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite id="CITEREFHalvorson2020" class="citation book cs1">Halvorson, Michael J. (2020). <i>Code Nation: Personal Computing and the Learn to Program Movement in America</i>. New York, NY: ACM Books. pp. <span class="nowrap">365–</span>368.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite id="CITEREFPratMadhyasthaMottarellaKuo2020" class="citation journal cs1">Prat, Chantel S.; Madhyastha, Tara M.; Mottarella, Malayka J.; Kuo, Chu-Hsuan (March 2, 2020). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7051953">"Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages"</a>. <i>Scientific Reports</i>. <b>10</b> (1): 3817. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2020NatSR..10.3817P">2020NatSR..10.3817P</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1038%2Fs41598-020-60661-8">10.1038/s41598-020-60661-8</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/2045-2322">2045-2322</a>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7051953">7051953</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/32123206">32123206</a>.</cite></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://news.mit.edu/2020/brain-reading-computer-code-1215">"To the brain, reading computer code is not the same as reading language"</a>. <i>MIT News | Massachusetts Institute of Technology</i>. December 15, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 29,</span> 2023</span>.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading3"><h3 id="Sources">Sources</h3></div>
<ul><li><cite id="CITEREFCeruzzi1998" class="citation book cs1">Ceruzzi, Paul E. (1998). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/historyofmodernc00ceru"><i>History of Computing</i></a></span>. Cambridge, Massachusetts: MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780262032551</bdi> – via EBSCOhost.</cite></li>
<li><cite id="CITEREFEvans2018" class="citation book cs1">Evans, Claire L. (2018). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=C8ouDwAAQBAJ&q=9780735211759&pg=PP1"><i>Broad Band: The Untold Story of the Women Who Made the Internet</i></a>. New York: Portfolio/Penguin. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780735211759</bdi>.</cite></li>
<li><cite id="CITEREFGürer1995" class="citation journal cs1">Gürer, Denise (1995). <a rel="nofollow" class="external text" href="https://courses.cs.washington.edu/courses/csep590/06au/readings/p175-gurer.pdf">"Pioneering Women in Computer Science"</a> <span class="cs1-format">(PDF)</span>. <i>Communications of the ACM</i>. <b>38</b> (1): <span class="nowrap">45–</span>54. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F204865.204875">10.1145/204865.204875</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:6626310">6626310</a>. <a rel="nofollow" class="external text" href="https://ghostarchive.org/archive/20221009/https://courses.cs.washington.edu/courses/csep590/06au/readings/p175-gurer.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on October 9, 2022.</cite></li>
<li><cite id="CITEREFSmith2013" class="citation journal cs1">Smith, Erika E. (2013). <a rel="nofollow" class="external text" href="https://doi.org/10.7771%2F1481-4374.1972">"Recognizing a Collective Inheritance through the History of Women in Computing"</a>. <i>CLCWeb: Comparative Literature & Culture</i>. <b>15</b> (1): <span class="nowrap">1–</span>9. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.7771%2F1481-4374.1972">10.7771/1481-4374.1972</a></span>.</cite></li>
<li>Essinger, J., & EBSCO Publishing (Firm). (2014). <i>Ada's algorithm: How lord byron's daughter ada lovelace launched the digital age</i>. Melville House.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li>A.K. Hartmann, <i><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090211113048/http://worldscibooks.com/physics/6988.html">Practical Guide to Computer Simulations</a></i>, Singapore: <a href="World_Scientific" title="World Scientific">World Scientific</a> (2009)</li>
<li>A. Hunt, D. Thomas, and W. Cunningham, <i>The Pragmatic Programmer. From Journeyman to Master</i>, Amsterdam: Addison-Wesley Longman (1999)</li>
<li>Brian W. Kernighan, <i>The Practice of Programming</i>, Pearson (1999)</li>
<li><a href="Gerald_Weinberg" title="Gerald Weinberg">Weinberg, Gerald M.</a>, <i>The Psychology of Computer Programming</i>, New York: Van Nostrand Reinhold (1971)</li>
<li><a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a>, <i>A Discipline of Programming</i>, Prentice-Hall (1976)</li>
<li>O.-J. Dahl, <a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">E.W.Dijkstra</a>, C.A.R. Hoare, <i>Structured Programming</i>, Academic Press (1972)</li>
<li><a href="David_Gries" title="David Gries">David Gries</a>, <i>The Science of Programming</i>, Springer-Verlag (1981)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/Computer_Programming" class="extiw external" title="wikibooks:Computer Programming">Computer Programming</a></b></i></div></div>
</div>
<div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/Windows_Programming" class="extiw external" title="wikibooks:Windows Programming">Windows Programming</a></b></i></div></div>
</div>
<div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikiversity has learning resources about <i><b><a href="https://en.wikiversity.org/wiki/Computer_Programming" class="extiw external" title="v:Computer Programming">Computer Programming</a></b></i></div></div>
</div>
<ul><li><span class="noviewer" typeof="mw:File"></span> Media related to <a href="https://commons.wikimedia.org/wiki/Category:Computer_programming" class="extiw external" title="commons:Category:Computer programming">Computer programming</a> at Wikimedia Commons</li>
<li><span class="noviewer" typeof="mw:File"></span> Quotations related to <a href="https://en.wikiquote.org/wiki/Programming" class="extiw external" title="wikiquote:Programming">Programming</a> at Wikiquote</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Computer_science1050" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Computer_science1050" style="font-size:114%;margin:0 4em"><a href="Computer_science" title="Computer science">Computer science</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>Note: This template roughly follows the 2012 <a href="ACM_Computing_Classification_System" title="ACM Computing Classification System">ACM Computing Classification System</a>.</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Printed_circuit_board" title="Printed circuit board">Printed circuit board</a></li>
<li><a href="Peripheral" title="Peripheral">Peripheral</a></li>
<li><a href="Integrated_circuit" title="Integrated circuit">Integrated circuit</a></li>
<li><a href="Very-large-scale_integration" title="Very-large-scale integration">Very-large-scale integration</a></li>
<li><a href="System_on_a_chip" title="System on a chip">System on a chip</a> (SoC)</li>
<li><a href="Green_computing" title="Green computing">Energy consumption</a> (green computing)</li>
<li><a href="Electronic_design_automation" title="Electronic design automation">Electronic design automation</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li>
<li><a href="Processor_(computing)" title="Processor (computing)">Processor</a></li>
<li><a href="List_of_computer_size_categories" title="List of computer size categories">Size</a> / <a href="Form_factor_(design)" title="Form factor (design)">Form</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Computer systems organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_architecture" title="Computer architecture">Computer architecture</a></li>
<li><a href="Computational_complexity" title="Computational complexity">Computational complexity</a></li>
<li><a href="Dependability" title="Dependability">Dependability</a></li>
<li><a href="Embedded_system" title="Embedded system">Embedded system</a></li>
<li><a href="Real-time_computing" title="Real-time computing">Real-time computing</a></li>
<li><a href="Cyber-physical_system" title="Cyber-physical system">Cyber-physical system</a></li>
<li><a href="Fault_tolerance" title="Fault tolerance">Fault tolerance</a></li>
<li><a href="Wireless_sensor_network" title="Wireless sensor network">Wireless sensor network</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_network" title="Computer network">Networks</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Network_architecture" title="Network architecture">Network architecture</a></li>
<li><a href="Communication_protocol" title="Communication protocol">Network protocol</a></li>
<li><a href="Networking_hardware" title="Networking hardware">Network components</a></li>
<li><a href="Network_scheduler" title="Network scheduler">Network scheduler</a></li>
<li><a href="Network_performance" title="Network performance">Network performance evaluation</a></li>
<li><a href="Network_service" title="Network service">Network service</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreter</a></li>
<li><a href="Middleware" title="Middleware">Middleware</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li>
<li><a href="Operating_system" title="Operating system">Operating system</a></li>
<li><a href="Software_quality" title="Software quality">Software quality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_theory" title="Programming language theory">Software notations</a> and <a href="Programming_tool" title="Programming tool">tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li>
<li><a href="Programming_language" title="Programming language">Programming language</a></li>
<li><a href="Compiler_construction" class="mw-redirect" title="Compiler construction">Compiler</a></li>
<li><a href="Domain-specific_language" title="Domain-specific language">Domain-specific language</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling language</a></li>
<li><a href="Software_framework" title="Software framework">Software framework</a></li>
<li><a href="Integrated_development_environment" title="Integrated development environment">Integrated development environment</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">Software configuration management</a></li>
<li><a href="Library_(computing)" title="Library (computing)">Software library</a></li>
<li><a href="Software_repository" title="Software repository">Software repository</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Software_development" title="Software development">Software development</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Control_flow" title="Control flow">Control variable</a></li>
<li><a href="Software_development_process" title="Software development process">Software development process</a></li>
<li><a href="Requirements_analysis" title="Requirements analysis">Requirements analysis</a></li>
<li><a href="Software_design" title="Software design">Software design</a></li>
<li><a href="Software_construction" title="Software construction">Software construction</a></li>
<li><a href="Software_deployment" title="Software deployment">Software deployment</a></li>
<li><a href="Software_engineering" title="Software engineering">Software engineering</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Software maintenance</a></li>
<li><a href="Programming_team" title="Programming team">Programming team</a></li>
<li><a href="Open-source_software" title="Open-source software">Open-source model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Theory_of_computation" title="Theory of computation">Theory of computation</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Model_of_computation" title="Model of computation">Model of computation</a>
<ul><li><a href="Stochastic_computing" title="Stochastic computing">Stochastic</a></li></ul></li>
<li><a href="Formal_language" title="Formal language">Formal language</a></li>
<li><a href="Automata_theory" title="Automata theory">Automata theory</a></li>
<li><a href="Computability_theory" title="Computability theory">Computability theory</a></li>
<li><a href="Computational_complexity_theory" title="Computational complexity theory">Computational complexity theory</a></li>
<li><a href="Logic_in_computer_science" title="Logic in computer science">Logic</a></li>
<li><a href="Semantics_(computer_science)" title="Semantics (computer science)">Semantics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Algorithm" title="Algorithm">Algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algorithm_design" class="mw-redirect" title="Algorithm design">Algorithm design</a></li>
<li><a href="Analysis_of_algorithms" title="Analysis of algorithms">Analysis of algorithms</a></li>
<li><a href="Algorithmic_efficiency" title="Algorithmic efficiency">Algorithmic efficiency</a></li>
<li><a href="Randomized_algorithm" title="Randomized algorithm">Randomized algorithm</a></li>
<li><a href="Computational_geometry" title="Computational geometry">Computational geometry</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics of <a href="Computing" title="Computing">computing</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Discrete_mathematics" title="Discrete mathematics">Discrete mathematics</a></li>
<li><a href="Probability" title="Probability">Probability</a></li>
<li><a href="Statistics" title="Statistics">Statistics</a></li>
<li><a href="Mathematical_software" title="Mathematical software">Mathematical software</a></li>
<li><a href="Information_theory" title="Information theory">Information theory</a></li>
<li><a href="Mathematical_analysis" title="Mathematical analysis">Mathematical analysis</a></li>
<li><a href="Numerical_analysis" title="Numerical analysis">Numerical analysis</a></li>
<li><a href="Theoretical_computer_science" title="Theoretical computer science">Theoretical computer science</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Information_system" title="Information system">Information systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database" title="Database">Database management system</a></li>
<li><a href="Computer_data_storage" title="Computer data storage">Information storage systems</a></li>
<li><a href="Enterprise_information_system" title="Enterprise information system">Enterprise information system</a></li>
<li><a href="Social_software" title="Social software">Social information systems</a></li>
<li><a href="Geographic_information_system" title="Geographic information system">Geographic information system</a></li>
<li><a href="Decision_support_system" title="Decision support system">Decision support system</a></li>
<li><a href="Industrial_process_control" title="Industrial process control">Process control system</a></li>
<li><a href="Multimedia_database" title="Multimedia database">Multimedia information system</a></li>
<li><a href="Data_mining" title="Data mining">Data mining</a></li>
<li><a href="Digital_library" title="Digital library">Digital library</a></li>
<li><a href="Computing_platform" title="Computing platform">Computing platform</a></li>
<li><a href="Digital_marketing" title="Digital marketing">Digital marketing</a></li>
<li><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></li>
<li><a href="Information_retrieval" title="Information retrieval">Information retrieval</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_security" title="Computer security">Security</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cryptography" title="Cryptography">Cryptography</a></li>
<li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Security_hacker" title="Security hacker">Security hacker</a></li>
<li><a href="Security_service_(telecommunication)" title="Security service (telecommunication)">Security services</a></li>
<li><a href="Intrusion_detection_system" title="Intrusion detection system">Intrusion detection system</a></li>
<li><a href="Hardware_security" title="Hardware security">Hardware security</a></li>
<li><a href="Network_security" title="Network security">Network security</a></li>
<li><a href="Information_security" title="Information security">Information security</a></li>
<li><a href="Application_security" title="Application security">Application security</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a class="external text external" href="https://en.wikipedia.org/wiki/Human-centered_computing">Human–centered computing</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interaction_design" title="Interaction design">Interaction design</a></li>
<li><a href="Augmented_reality" title="Augmented reality">Augmented reality</a></li>
<li><a href="Virtual_reality" title="Virtual reality">Virtual reality</a></li>
<li><a href="Social_computing" title="Social computing">Social computing</a></li>
<li><a href="Ubiquitous_computing" title="Ubiquitous computing">Ubiquitous computing</a></li>
<li><a href="Visualization_(graphics)" title="Visualization (graphics)">Visualization</a></li>
<li><a href="Computer_accessibility" title="Computer accessibility">Accessibility</a></li>
<li><a href="Human%E2%80%93computer_interaction" title="Human–computer interaction">Human–computer interaction</a></li>
<li><a href="Mobile_computing" title="Mobile computing">Mobile computing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrency_(computer_science)" title="Concurrency (computer science)">Concurrency</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Concurrent_computing" title="Concurrent computing">Concurrent computing</a></li>
<li><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></li>
<li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Multithreading_(computer_architecture)" title="Multithreading (computer architecture)">Multithreading</a></li>
<li><a href="Multiprocessing" title="Multiprocessing">Multiprocessing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Artificial_intelligence" title="Artificial intelligence">Artificial intelligence</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Natural_language_processing" title="Natural language processing">Natural language processing</a></li>
<li><a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">Knowledge representation and reasoning</a></li>
<li><a href="Computer_vision" title="Computer vision">Computer vision</a></li>
<li><a href="Automated_planning_and_scheduling" title="Automated planning and scheduling">Automated planning and scheduling</a></li>
<li><a href="Mathematical_optimization" title="Mathematical optimization">Search methodology</a></li>
<li><a href="Control_theory" title="Control theory">Control method</a></li>
<li><a href="Philosophy_of_artificial_intelligence" title="Philosophy of artificial intelligence">Philosophy of artificial intelligence</a></li>
<li><a href="Distributed_artificial_intelligence" title="Distributed artificial intelligence">Distributed artificial intelligence</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Machine_learning" title="Machine learning">Machine learning</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Supervised_learning" title="Supervised learning">Supervised learning</a></li>
<li><a href="Unsupervised_learning" title="Unsupervised learning">Unsupervised learning</a></li>
<li><a href="Reinforcement_learning" title="Reinforcement learning">Reinforcement learning</a></li>
<li><a href="Multi-task_learning" title="Multi-task learning">Multi-task learning</a></li>
<li><a href="Cross-validation_(statistics)" title="Cross-validation (statistics)">Cross-validation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_graphics" title="Computer graphics">Graphics</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_animation" title="Computer animation">Animation</a></li>
<li><a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">Rendering</a></li>
<li><a href="Photograph_manipulation" title="Photograph manipulation">Photograph manipulation</a></li>
<li><a href="Graphics_processing_unit" title="Graphics processing unit">Graphics processing unit</a></li>
<li><a href="Image_compression" title="Image compression">Image compression</a></li>
<li><a href="Solid_modeling" title="Solid modeling">Solid modeling</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applied computing</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Quantum_computing" title="Quantum computing">Quantum computing</a></li>
<li><a href="E-commerce" title="E-commerce">E-commerce</a></li>
<li><a href="Enterprise_software" title="Enterprise software">Enterprise software</a></li>
<li><a href="Computational_mathematics" title="Computational mathematics">Computational mathematics</a></li>
<li><a href="Computational_physics" title="Computational physics">Computational physics</a></li>
<li><a href="Computational_chemistry" title="Computational chemistry">Computational chemistry</a></li>
<li><a href="Computational_biology" title="Computational biology">Computational biology</a></li>
<li><a href="Computational_social_science" title="Computational social science">Computational social science</a></li>
<li><a href="Computational_engineering" title="Computational engineering">Computational engineering</a></li>
<li>Differentiable computing</li>
<li><a href="Health_informatics" title="Health informatics">Computational healthcare</a></li>
<li><a href="Digital_art" title="Digital art">Digital art</a></li>
<li><a href="Electronic_publishing" title="Electronic publishing">Electronic publishing</a></li>
<li><a href="Cyberwarfare" title="Cyberwarfare">Cyberwarfare</a></li>
<li><a href="Electronic_voting" title="Electronic voting">Electronic voting</a></li>
<li><a href="Video_game" title="Video game">Video games</a></li>
<li><a href="Word_processor" title="Word processor">Word processing</a></li>
<li><a href="Operations_research" title="Operations research">Operations research</a></li>
<li><a href="Educational_technology" title="Educational technology">Educational technology</a></li>
<li><a href="Document_management_system" title="Document management system">Document management</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Outline"></span></span> <a href="Outline_of_computer_science" title="Outline of computer science">Outline</a></li>
<li><span class="noviewer" typeof="mw:File"><span></span></span> Glossaries</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Software_engineering336" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Software_engineering336" style="font-size:114%;margin:0 4em"><a href="Software_engineering" title="Software engineering">Software engineering</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="DevOps" title="DevOps">DevOps</a></li>
<li><a href="Empirical_software_engineering" title="Empirical software engineering">Empirical software engineering</a></li>
<li><a href="Experimental_software_engineering" title="Experimental software engineering">Experimental software engineering</a></li>
<li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Requirements_engineering" title="Requirements engineering">Requirements engineering</a></li>
<li><a href="Search-based_software_engineering" title="Search-based software engineering">Search-based software engineering</a></li>
<li><a href="Site_reliability_engineering" title="Site reliability engineering">Site reliability engineering</a></li>
<li><a href="Social_software_engineering" title="Social software engineering">Social software engineering</a></li>
<li><a href="Software_deployment" title="Software deployment">Software deployment</a></li>
<li><a href="Software_design" title="Software design">Software design</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Software maintenance</a></li>
<li><a href="Software_testing" title="Software testing">Software testing</a></li>
<li><a href="Systems_analysis" title="Systems analysis">Systems analysis</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abstraction_(computer_science)" title="Abstraction (computer science)">Abstraction</a></li>
<li><a href="CI/CD" title="CI/CD">CI/CD</a></li>
<li><a href="Computer_compatibility" title="Computer compatibility">Compatibility</a>
<ul><li><a href="Backward_compatibility" title="Backward compatibility">Backward compatibility</a></li>
<li><a href="Compatibility_layer" title="Compatibility layer">Compatibility layer</a></li>
<li><a href="Compatibility_mode" title="Compatibility mode">Compatibility mode</a></li>
<li><a href="Forward_compatibility" title="Forward compatibility">Forward compatibility</a></li>
<li><a href="Software_incompatibility" title="Software incompatibility">Software incompatibility</a></li></ul></li>
<li><a href="Component-based_software_engineering" title="Component-based software engineering">Component-based software engineering</a></li>
<li><a href="Data_modeling" title="Data modeling">Data modeling</a></li>
<li><a href="Enterprise_architecture" title="Enterprise architecture">Enterprise architecture</a></li>
<li><a href="Functional_specification" title="Functional specification">Functional specification</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling language</a></li>
<li><a href="Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li>
<li><a href="Software" title="Software">Software</a></li>
<li><a href="Software_archaeology" title="Software archaeology">Software archaeology</a></li>
<li><a href="Software_architecture" title="Software architecture">Software architecture</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">Software configuration management</a></li>
<li><a href="Software_development_process" title="Software development process">Software development process/methodology</a></li>
<li><a href="Software_quality" title="Software quality">Software quality</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li>
<li><a href="Software_system" title="Software system">Software system</a></li>
<li><a href="Software_verification_and_validation" title="Software verification and validation">Software verification and validation</a></li>
<li><a href="Structured_analysis" title="Structured analysis">Structured analysis</a>
<ul><li><a href="Essential_systems_analysis" title="Essential systems analysis">Essential analysis</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Orientations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Aspect-oriented_programming" title="Aspect-oriented programming">Aspect-oriented</a></li>
<li><a href="Object-oriented_programming" title="Object-oriented programming">Object orientation</a></li>
<li><a href="Ontology_(information_science)" title="Ontology (information science)">Ontology</a></li>
<li><a href="Systems_development_life_cycle" title="Systems development life cycle">SDLC</a></li>
<li><a href="Service-oriented_architecture" title="Service-oriented architecture">Service orientation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Models</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Developmental</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Enterprise_unified_process" title="Enterprise unified process">EUP</a></li>
<li><a href="Executable_UML" title="Executable UML">Executable UML</a></li>
<li><a href="Incremental_build_model" title="Incremental build model">Incremental model</a></li>
<li><a href="Iterative_and_incremental_development" title="Iterative and incremental development">Iterative model</a></li>
<li><a href="Software_prototyping" title="Software prototyping">Prototype model</a></li>
<li><a href="Rapid_application_development" title="Rapid application development">RAD</a></li>
<li><a href="Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li>
<li><a href="Spiral_model" title="Spiral model">Spiral model</a></li>
<li><a href="Unified_process" title="Unified process">UP</a></li>
<li><a href="V-model_(software_development)" title="V-model (software development)">V-model</a></li>
<li><a href="Waterfall_model" title="Waterfall model">Waterfall model</a></li>
<li><a href="Extreme_programming" title="Extreme programming">XP</a></li>
<li><a href="Model-driven_engineering" title="Model-driven engineering">Model-driven engineering</a></li>
<li><a href="Round-trip_engineering" title="Round-trip engineering">Round-trip engineering</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li>
<li><a href="Data_model" title="Data model">Data model</a></li>
<li><a href="Entity%E2%80%93relationship_model" title="Entity–relationship model">ER model</a></li>
<li><a href="Function_model" title="Function model">Function model</a></li>
<li><a href="Information_model" title="Information model">Information model</a></li>
<li><a href="Metamodeling" title="Metamodeling">Metamodeling</a></li>
<li><a href="Object_model" title="Object model">Object model</a></li>
<li><a href="ISO/IEC_15504" title="ISO/IEC 15504">SPICE</a></li>
<li><a href="Systems_modeling" title="Systems modeling">Systems model</a></li>
<li><a href="View_model" title="View model">View model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IDEF" title="IDEF">IDEF</a></li>
<li><a href="Systems_modeling_language" title="Systems modeling language">SysML</a></li>
<li><a href="Unified_Modeling_Language" title="Unified Modeling Language">UML</a></li>
<li><a href="Universal_Systems_Language" title="Universal Systems Language">USL</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Systems_design" title="Systems design">Systems design</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Software_requirements_specification" title="Software requirements specification"> Requirements</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Functional_requirement" title="Functional requirement">Functional requirement</a></li>
<li><a href="Non-functional_requirement" title="Non-functional requirement">Non-functional requirement</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Capacity_planning" title="Capacity planning"> Capacity</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Active_users" title="Active users"> Users</a></li>
<li><a href="Central_processing_units" class="mw-redirect" title="Central processing units"> Compute</a></li>
<li><a href="Computer_memory" title="Computer memory"> Memory</a></li>
<li><a href="Computer_data_storage" title="Computer data storage"> Storage</a></li>
<li><a href="Bandwidth_(computing)" title="Bandwidth (computing)"> Network</a></li>
<li><a href="Web_traffic" title="Web traffic">Web traffic</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Interface_(computing)" title="Interface (computing)"> Interface</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="API" title="API">API</a></li>
<li><a href="SOAP" title="SOAP">SOAP</a></li>
<li><a href="REST" title="REST">REST</a></li>
<li><a href="GraphQL" title="GraphQL">GraphQL</a></li>
<li><a href="GRPC" title="GRPC">gRPC</a></li>
<li><a href="Webhook" title="Webhook">Webhook</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="High-level_design" title="High-level design">High-level design</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Client_(computing)" title="Client (computing)"> Client</a></li>
<li><a href="Load_balancing_(computing)" title="Load balancing (computing)"> Load balancing</a></li>
<li><a href="Application_server" title="Application server">Application server</a></li>
<li><a href="Message_queue" title="Message queue">Message queue</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="System_Integration" class="mw-redirect" title="System Integration"> Integration</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Vertical_integration" title="Vertical integration"> Vertical</a></li>
<li><a href="Peer-to-peer" title="Peer-to-peer">Peer-to-peer</a></li>
<li><a href="API_management" title="API management"> API Gateway</a></li>
<li><a href="Publish%E2%80%93subscribe_pattern" title="Publish–subscribe pattern"> pub-sub</a></li>
<li><a href="Event_store" title="Event store"> Event Source</a></li>
<li><a href="Extract%2C_transform%2C_load" title="Extract, transform, load"> ETL</a></li>
<li><a href="Batch_processing" title="Batch processing"> Batch</a></li>
<li><a href="Stream_processing" title="Stream processing">Stream</a></li>
<li><a href="Orchestration_(computing)" title="Orchestration (computing)"> Orchestration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Architectures" class="mw-redirect" title="Architectures">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Monolithic_application" title="Monolithic application"> Monolithic</a></li>
<li><a href="Microservices" title="Microservices">Microservices</a></li>
<li><a href="Event-driven_architecture" title="Event-driven architecture"> Event-Driven</a></li>
<li><a href="Client%E2%80%93server_model" title="Client–server model"> Client–server</a></li>
<li><a href="Serverless_computing" title="Serverless computing"> Serverless</a></li>
<li><a href="Circuit_breaker_design_pattern" title="Circuit breaker design pattern"> Circuit breaker</a></li>
<li><a href="Rate_limiting" title="Rate limiting">Rate limiting</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Database" title="Database">Database</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Relational_database" title="Relational database"> Relational</a></li>
<li><a href="NoSQL" title="NoSQL">NoSQL</a></li>
<li><a href="Graph_database" title="Graph database"> Graph</a></li>
<li><a href="Key%E2%80%93value_database" title="Key–value database"> Key–value</a></li>
<li><a href="Log-structured_merge-tree" title="Log-structured merge-tree"> LSM Tree </a></li>
<li><a href="Time_series_database" title="Time series database"> Time series</a></li>
<li><a href="Data_orientation" title="Data orientation"> Column Oriented</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Systems_design" title="Systems design"> Principles</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Consistency_(database_systems)" title="Consistency (database systems)">Consistency</a></li>
<li><a href="Reliability_engineering" title="Reliability engineering">Reliability</a></li>
<li><a href="CAP_theorem" title="CAP theorem">CAP theorem</a></li>
<li><a href="Software_maintenance" title="Software maintenance"> Maintainability</a></li>
<li><a href="Computer_configuration" title="Computer configuration"> Configurability</a></li>
<li><a href="Modularity" title="Modularity">Modularity</a></li>
<li><a href="Durability_(database_systems)" title="Durability (database systems)"> Durability</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Scalability" title="Scalability">Scalability</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Service_statelessness_principle" title="Service statelessness principle"> Stateless</a></li>
<li><a href="Asynchronous_I/O" title="Asynchronous I/O">Asynchronous I/O</a></li>
<li><a href="Loose_coupling" title="Loose coupling">Loose coupling</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Availability" title="Availability">Availability</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fault_tolerance" title="Fault tolerance">Fault tolerance</a></li>
<li><a href="Failover" title="Failover">Failover</a></li>
<li><a href="Single_point_of_failure" title="Single point of failure">Single point of failure</a></li>
<li><a href="Replication_(computing)" title="Replication (computing)"> Replication</a></li>
<li><a href="Consistent_hashing" title="Consistent hashing">Consistent hashing</a></li>
<li><a href="Circuit_breaker_design_pattern" title="Circuit breaker design pattern"> Circuit breaker</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Latency_(engineering)" title="Latency (engineering)">Latency</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cache_(computing)" title="Cache (computing)"> Cache</a></li>
<li><a href="Content_delivery_network" title="Content delivery network"> CDN</a></li>
<li><a href="Shard_(database_architecture)" title="Shard (database architecture)"> Shard </a></li>
<li><a href="Database_index" title="Database index">Database index</a></li>
<li><a href="Cache_prefetching" title="Cache prefetching"> Pre-caching</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Computer_data_storage" title="Computer data storage"> Storage</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Object_storage" title="Object storage">Object storage</a></li>
<li><a href="Block-level_storage" title="Block-level storage"> Block storage</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Observability_(software)" title="Observability (software)"> Observability</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Logging_(computing)" title="Logging (computing)"> Logging</a></li>
<li><a href="Software_metric" title="Software metric"> Metrics</a></li>
<li><a href="Tracing_(software)" title="Tracing (software)"> Tracing </a></li>
<li><a href="Failure_rate" title="Failure rate"> Error rate </a></li>
<li><a href="Queries_per_second" title="Queries per second">Queries per second </a></li>
<li><a href="Notification_system" title="Notification system">Notification system</a></li>
<li><a href="Anomaly_detection" title="Anomaly detection">Anomaly detection</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related fields</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_engineering" title="Computer engineering">Computer engineering</a></li>
<li><a href="Computer_science" title="Computer science">Computer science</a></li>
<li><a href="Information_science" title="Information science">Information science</a></li>
<li><a href="Project_management" title="Project management">Project management</a></li>
<li><a href="Risk_management" title="Risk management">Risk management</a></li>
<li><a href="Systems_engineering" title="Systems engineering">Systems engineering</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold;"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Software_engineering" class="extiw external" title="commons:Category:Software engineering">Commons</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Software_quality258" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Software_quality258" style="font-size:114%;margin:0 4em"><a href="Software_quality" title="Software quality">Software quality</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Qualities</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Internal</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Software_sizing" title="Software sizing">Size</a></li>
<li><a href="Maintainability#Software_engineering" title="Maintainability">Maintainability</a></li>
<li><a href="Flexibility_(engineering)" title="Flexibility (engineering)">Flexibility</a></li>
<li><a href="Software_portability" title="Software portability">Portability</a></li>
<li><a href="Reusability" title="Reusability">Reusability</a></li>
<li><a class="mw-selflink-fragment" href="#Readability_of_source_code">Readability</a></li>
<li><a href="Scalability" title="Scalability">Scalability</a></li>
<li><a href="Software_testability" title="Software testability">Testability</a></li>
<li><a href="Understandability" class="mw-redirect" title="Understandability">Understandability</a></li>
<li><a href="Loose_coupling" title="Loose coupling">Loose coupling</a></li>
<li><a href="Orthogonality_(programming)" title="Orthogonality (programming)">Orthogonality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">External</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Usability" title="Usability">Usability</a></li>
<li><a href="Reliability_engineering" title="Reliability engineering">Reliability</a></li>
<li><a href="Adaptability" title="Adaptability">Adaptability</a></li>
<li><a href="Correctness_(computer_science)" title="Correctness (computer science)">Correctness</a></li>
<li><a href="Accuracy_and_precision" title="Accuracy and precision">Accuracy</a></li>
<li><a href="Algorithmic_efficiency" title="Algorithmic efficiency">Efficiency</a></li>
<li><a href="Robustness_(computer_science)" title="Robustness (computer science)">Robustness</a></li>
<li><a href="Software_development_security" class="mw-redirect" title="Software development security">Security</a></li>
<li><a href="Software_system_safety" class="mw-redirect" title="Software system safety">Safety</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Standards and lists</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ISO/IEC_9126" title="ISO/IEC 9126">ISO/IEC 9126</a></li>
<li><a href="Non-functional_requirement#Examples" title="Non-functional requirement">Non-functional requirements</a></li>
<li><a href="List_of_system_quality_attributes" title="List of system quality attributes">List of system quality attributes</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Processes</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Software_quality_management" title="Software quality management">Software quality management</a></li>
<li><a href="Software_quality_control" title="Software quality control">Software quality control</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold;"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span></li>
<li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Software_quality" class="extiw external" title="commons:Category:Software quality">Commons</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q80006#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata1588" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q80006#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata1588" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.worldcat.org/fast/872390">FAST</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4076370-5">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh85107310">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb11932648m">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb11932648m">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.ndl.go.jp/auth/ndlna/00569223">Japan</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="programování"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph115891&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="Programación de ordenadores"><a rel="nofollow" class="external text" href="https://datos.bne.es/resource/XX526555">Spain</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007538691605171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/4e70b988-a99f-47ed-b187-7ec11b33927a">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-30" href="https://en.wikipedia.org/wiki/?title=Computer_programming&oldid=1303389193">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>